package com.zhanghe.study.study_scala.collection

/**
 * 元组
 * @author zh
 * @date 2021/5/8 10:25
 */
object TestTuple {
  def main(args: Array[String]): Unit = {
    // 为了高效的操作元组，编译器根据元素个数的不同，对应不同的元组类型，分别是Tuple1-Tuple22
    val tuple = (1,2,"aa",4)
    // (1,2,"aa",4)
    println(tuple)
    // class scala.Tuple4
    println(tuple.getClass)
    // _2获取元组的第二个元素  2
    println(tuple._2)
    // 根据模式匹配来根据_seq来获取元组的第二个元素 2
    println(tuple.productElement(1))

    //遍历 需要使用元组的迭代器来遍历
    for(item <- tuple.productIterator){
      println("元素="+item)
    }

    // 可以使用类型来严格控制每个元素的类型
    val tuple1:(Int, Int, String, Int) = (1,2,"aa",4)


  }

}
